import App from './App'

// #ifndef VUE3
import Vue from 'vue'
import './uni.promisify.adaptor'
Vue.config.productionTip = false
App.mpType = 'app'
const app = new Vue({
  ...App
})
app.$mount()
// #endif

// #ifdef VUE3
import { createSSRApp } from 'vue'
export function createApp() {
  const app = createSSRApp(App)
  return {
    app
  }
}
// #endif

// 请求拦截器 - 添加 token
uni.addInterceptor('request', {
  invoke(args) {
    const token = uni.getStorageSync('token')
    if (token) {
      args.header = args.header || {}
      args.header['Authorization'] = `Bearer ${token}`
    }
    return args
  },
  fail(err) {
    console.error('请求失败:', err)
  }
})

// 响应拦截器 - 处理 401 错误
uni.addInterceptor('request', {
  success(res) {
    if (res.statusCode === 401) {
      uni.removeStorageSync('token')
      uni.showToast({ title: '登录已过期，请重新登录', icon: 'none' })
      uni.navigateTo({ url: '/pages/Login/Login' })
    }
    return res
  }
})